package com.liuqianfei.markme.rules;

import com.liuqianfei.markme.MarkMeParser;
import com.liuqianfei.markme.core.Token;

import java.util.List;

/**
 * @author liuqianfei
 */
public abstract class AbstractState
{
    public Environment getEnv(){return null;}
    public void setEnv(Environment env){}

    // Inline
    public String getSrc(){return null;}
    public MarkMeParser getMd(){return null;}

    public List<Token> getTokens(){return null;}
    public Token getToken(int index){return null;}
    public void setTokens(List<Token> tokens){}
    public void setToken(int index, Token token){}

    public int getPos(){return 0;}
    public void setPos(int pos){}

    public int getPosMax(){return  0;}
    public void setPosMax(int posMax){}

    public int getLevel(){return 0;}
    public void setLevel(int level){}

    public String getPending(){return null;}
    public void setPending(String pending){}

    public List<Delimiter> getDelimiters(){return null;}
    public void setDelimiters(List<Delimiter> delimiters){}

    public Token push(String type, String tag, int nesting){return null;}
    public EmphasisLikeScanResult scanDelims(int start, boolean canSplitWord){return null;}

    // block
    public List<Integer> getbMarks(){return null;}
    public int getbMarks(int index){return 0;}
    public void setbMarks(List<Integer> bMarks){}
    public void setbMarks(int index, int value){}

    public List<Integer> geteMarks(){return null;}
    public int geteMarks(int index){return 0;}
    public void seteMarks(List<Integer> eMarks){}

    public List<Integer> gettShift(){return null;}
    public int gettShift(int index){return 0;}
    public void settShift(List<Integer> tShift){}
    public void settShift(int index, int value){}

    public List<Integer> getsCount(){return null;}
    public int getsCount(int index){return 0;}
    public void setsCount(List<Integer> sCount){}
    public void setsCount(int index, int value){}

    public List<Integer> getBsCount(){return null;}
    public int getBsCount(int index){return 0;}
    public void setBsCount(List<Integer> bsCount){}
    public void setBsCount(int index, int value){}

    public int getBlkIndent(){return 0;}
    public void setBlkIndent(int blkIndent){}

    public int getLine(){return 0;}
    public void setLine(int line){}

    public int getLineMax(){return 0;}
    public void setLineMax(int lineMax){}

    public boolean isTight(){return false;}
    public void setTight(boolean tight){}

    public String getParentType(){return null;}
    public void setParentType(String parentType){}

    public String getLines(int begin, int end, int indent, boolean keepLastLF){return null;}
    public boolean isEmpty(int line){return false;}
    public int skipSpaces(int pos){return 0;}
    public int skipSpacesBack(int pos, int min){return 0;}
    public int skipChars(int pos, int code){return 0;}
    public int skipCharsBack(int pos, int code, int min){return 0;}

    // core
    public boolean isInlineMode(){return false;}
    public void setInlineMode(boolean inlineMode){}
}
